A standard resource management scenario is illustrated in FIG. 1. A client computer 101 requires the use of a resource that is provided by a group of servers 119A-119C. The required resource can be available on any subset of the group of servers 119A-C. In the illustrated example, the servers are application servers 119A-C that provide a particular application or group of applications to a requesting client.
Access to the servers 119A-C is controlled by a load balancing server 105. The load balancing server 105 receives a resource request 103 from a client computer 101 and determines which of the available servers 119A-C will service the request. The load balancing server 105 relies on one of a group of available load balancing modules to make the selection of the server to service the request 103. Selection of the load balancing module is performed by or based on a configuration module 107. The connections to the servers are managed by a connection pool module 117.
The load balancing modules can include a round robin module 109, business module 111, data transfer module 113, and response time module 115. Each module uses a separate algorithm for selecting a server. The round robin module 109 uses a round robin selection scheme. The business module 111 selects the least busy server. The data transfer module 113 selects the server with the lowest data transfer load. The response time module 115 selects the server with the best response time.
The configuration module 107 selects a single load balancing module and executes it to select a server to handle a request. The configuration module 107 is configured by a system administrator. The configuration module 107 is a simple data structure that calls or indicates the load balancing module that is currently configured for use by the administrator. After the selected load balancing module executes and selects a server, a connection for the selected server is obtained from the connection pool 117 and the request is serviced by the selected server through the connection.